package com.pan.download5.sync;

/**
 * 这个自定义的锁能确保释放锁时，将调用线程阻塞起来
 *
 * 当某线调用unlockAndBlock发方法后，该线程除非同时完成阻塞和锁释放，
 * 否则别的线程不能通过lock获得该锁
 */

public interface UnlockAndBlock {
    public void lock();
    public void unlock();
    public void unlockAndBlock(int id) ;//核心
    
    public void wakeBlockThread(int id);
    @Deprecated
    public Thread getBlockerById(int id);

    public default void close(){};
}

